/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package dam_ed04_actividad;
/**
 *
 * @author Inés Reino Suárez
 */
public class CCuenta {

    // Declaración de las propiedades de la clase.

    private String nombre;
    private String cuenta;
    private double saldo;
    private double tipoInterés;

    /**
     * Método constructor.
     */
    public CCuenta()
    {
    }

    /**
     * Método constructor con especificación de propiedades.
     * @param nom . Nombre del titular.
     * @param cue . Número de cuenta.
     * @param sal . Saldo actual de la cuenta.
     * @param tipo . Tipo de interés aplicado.
    */
    public CCuenta(String nom, String cue, double sal, double tipo)
    {
        nombre =nom;
        cuenta=cue;
        saldo=sal;
    }

    /**
     * Método para introducir Nombre del titular de la cuenta.
     * @param nom . Nombre del titular.
     */
    public void asignarNombre(String nom)
    {
        setNombre(nom);
    }

    /**
     * Método que muestra el nombre del titular.
     * @return . Nombre del titular.
     */
    public String obtenerNombre()
    {
        return getNombre();
    }


    /**
     * Método que muestra el estado de la cuenta.
     * @return . Saldo actual de la cuenta.
     */
    public double estado()
    {
        return getSaldo();
    }


    /**
     * Método para ingresar saldo en la cuenta.
     * @param cantidad . Cantidad a ingresar.
     * @throws Exception . La excepción controla que la cantidad a ingresar no sea negativa.
     */
    public void ingresar(double cantidad) throws Exception
    {
        if (cantidad<0)
            throw new Exception("No se puede ingresar una cantidad negativa");
        setSaldo(getSaldo() + cantidad);
    }

    /**
     * Método para retirar saldo de la cuenta.
     * @param cantidad. Cantidad a retirar.
     * @throws Exception . La excepción controla que no se retire una cantidad
     * negativa, y si hay suficiente saldo en la cuenta.
     */
    public void retirar(double cantidad) throws Exception
    {
        if (cantidad <= 0)
            throw new Exception ("No se puede retirar una cantidad negativa");
        if (estado()< cantidad)
            throw new Exception ("No se hay suficiente saldo");
        setSaldo(getSaldo() - cantidad);
    }


    /**
     * Método para mostrar el número de la cuenta.
     * @return . Número de cuenta.
     */
    public String obtenerCuenta()
    {
        return getCuenta();
    }


    /**
     * Método que muestra el nombre del titular de la cuenta.
     * @return . Nombre del titular
     */
    public String getNombre() {
        return nombre;
    }


    /**
     * Mëtodo para introducir el nombre del titular de la cuenta.
     * @param nombre . Nombre del titular de la cuenta.
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }


    /**
     * Método para mostrar el tipo de interés aplicado a la cuenta.
     * @return . Tipo de interés.
     */
    public double getTipoInterés() {
        return tipoInterés;
    }


    /**
     * Método para asignar el tipo de interés que se le asignará a la cuenta.
     * @param tipoInterés . Tipo de interés.
     */
    public void setTipoInterés(double tipoInterés) {
        this.tipoInterés = tipoInterés;
    }

    /** Método que muestra el número de cuenta.
     * @return the cuenta . Número de cuenta.
     */
    public String getCuenta() {
        return cuenta;
    }

    /** Método que asigna el número de cuenta.
     * @param cuenta the cuenta to set . Número de cuenta.
     */
    public void setCuenta(String cuenta) {
        this.cuenta = cuenta;
    }

    /**
     * Método que muestra el saldo de la cuenta.
     * @return the saldo . Saldo de la cuenta.
     */
    public double getSaldo() {
        return saldo;
    }

    /**
     * Método para asignar un saldo a la cuenta.
     * @param saldo the saldo to set. Saldo de la cuenta.
     */
    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }
}
